High-Level Multi-Threading in hProlog
نویسندگان
چکیده
A new high-level interface to multi-threading in Prolog, implemented in hProlog, is described. Modern CPUs often contain multiple cores and through high-level multi-threading a programmer can leverage this power without having to worry about low-level details. Two common types of high-level explicit parallelism are discussed: independent and-parallelism and competitive or-parallelism. A new type of explicit parallelism, pipeline parallelism, is proposed. This new type can be used in certain cases where independent and-parallelism and competitive orparallelism cannot be used.
منابع مشابه
Supporting more types in the WAM: the hProlog tagging schema
Starting from dProlog, we developed hProlog to become a back end for HAL. We incorporated attributed variables, the data types string and character and support for bigints. We describe how we managed to cater for all these, while not further restricting the heap address space and without efficiency loss. We explain the rationale behind some decisions, the effect on indexing, some new low-level ...
متن کاملCoordination and Concurrency in Multi-engine Prolog
We discuss the impact of the separation of logic engines (independent logic processing units) and multi-threading on the design of coordination mechanisms for a Prolog based agent infrastructure. We advocate a combination of coroutining constructs with focus on expressiveness and a simplified, multi-threading API that ensures optimal use available parallelism. In this context, native multi-thre...
متن کاملEfficient parallelization of the genetic algorithm solution of traveling salesman problem on multi-core and many-core systems
Efficient parallelization of genetic algorithms (GAs) on state-of-the-art multi-threading or many-threading platforms is a challenge due to the difficulty of schedulation of hardware resources regarding the concurrency of threads. In this paper, for resolving the problem, a novel method is proposed, which parallelizes the GA by designing three concurrent kernels, each of which running some depe...
متن کاملPrefetch Threads for Database Operations on a Simultaneous Multi-threaded Processor
Simultaneous Multi-threading (SMT) has been developed to increase instruction level parallelism by allowing instructions from a different thread to run during a stall. Inter-thread cache interference, however, might limit the benefit of running multiple independent threads. SMT processors can be utilized in a different model, where a helper thread is used to prefetch cache blocks for the main e...
متن کاملConcurrent Programming Constructs and First-Class Logic Engines
Multi-threading has been adopted in today’s Prolog implementations as it became widely available in implementation languages like C or Java. An advantage of multi-threading over more declarative concurrency models like various AND-parallel and OR-parallel execution schemes, is that it maps to the underlying hardware directly: on typical multi-core machines threads and processes are mapped to di...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- CoRR
دوره abs/1112.3786 شماره
صفحات -
تاریخ انتشار 2011